//sigdemo.c
#include <unistd.h>  // 包含POSIX操作系统API的头文件，提供sleep等函数
#include <stdio.h>   // 包含标准输入输出功能的头文件，提供printf函数
#include <sys/types.h> // 包含数据类型定义的头文件，提供基本数据类型定义
#include <stdbool.h>
#include <signal.h>
// 信号处理函数，用于处理接收到的信号
void sigHandler(int signalNum)
{
    printf("The sign no is:%d\n", signalNum); // 当接收到信号时，打印信号的编号
}

int main()
{
    // 注册SIGINT信号的处理函数为sigHandler
    // 当用户按下Ctrl+C时，会发送SIGINT信号给进程，触发sigHandler函数
    signal(SIGINT, sigHandler);
    
    // 注册SIGQUIT信号的处理函数为SIG_IGN，即忽略该信号
    // 当用户按下Ctrl+\时，会发送SIGQUIT信号给进程，但程序会忽略它
    signal(SIGQUIT, SIG_IGN);
    
    // 进入一个无限循环，使程序持续运行
    while(true)
    {
        sleep(1); // 每次循环暂停1秒，减少CPU资源的占用
    }
    
    // 注意：由于存在无限循环，下面的return语句实际上永远不会被执行到
    return 0; // 程序正常结束时的返回状态码，但在此程序中不会用到
}

